"""
面向对象：
程序      现实中
对象      具体的事物

现实中的事物  转换成代码程序
万事万物皆对象
    面向过程    会因为局部影响全局，几乎全部影响
优点:
    复用，更加灵活（只需要修复出现问题的结点）
    关注的 个体 + 关系
    类 、对象 、 属性、方法

对象：手机
对象的集合:
    共同的特征：颜色 品牌 大小  价格      动作：打电话 发短信 上网 打游戏
类别：
    手机类     学生类
    特征： 姓名  年龄 身高  特征  血型  婚否 ------------> 属性
    动作：刷抖音 敲代码  看书...------------> 方法
    多个对象-------->提取对象的共同特征和动作--------->封装到一个类
"""
"""
# 定义 首字母大写，驼峰命名法；默认继承Object
class

"""


class Phone:
    pass
    # 属性
    brand = '苹果'
    # 方法


# <class '__main__.Phone'>
print(Phone)

# 使用模型创建对象
yh = Phone()  # <__main__.Phone object at 0x000001DEAED95A88>
print(yh)
print(yh.brand)
yh.brand = '华为'
print(yh.brand)

ff = Phone()
print(ff)  # <__main__.Phone object at 0x000001DEAED95AC8>
print(yh.brand)
ff.brand = '小米'
print(ff.brand)

print("属性".center(20, '*'))
"""
对象：
    对象名= 类名(): 在内存就是内存空间分配
属性:
    类属性和对象属性
        先找对象属性再找类属性；
        如果再找到对象属性则不会再找类属性

"""


class Student:
    pass
    # 类属性
    name = ''
    age = 0


xiaowei = Student()

# 对象属性
xiaowei.name = '小伟'  # 赋值操作
xiaowei.age = 18

print(xiaowei.name)
print(xiaowei.age)

# 再创建一个对象
yy = Student()
yy.age = 30
print(yy.name)
print(yy.age)

# 初始化类属性

Student.age = 18
Student.name = "中国"

print(yy.name)
